package service;

import java.util.List;

/**
 * WAL（Write-Ahead Log）服务接口
 * 用于保证数据一致性
 */
public interface WalService {
    
    /**
     * 记录操作日志
     */
    boolean logOperation(String operation, String key, Object value);
    
    /**
     * 记录批量操作日志
     */
    boolean logBatchOperation(String operation, java.util.Map<String, Object> keyValueMap);
    
    /**
     * 记录删除操作日志
     */
    boolean logDeleteOperation(String key);
    
    /**
     * 记录集合操作日志
     */
    boolean logCollectionOperation(String operation, String collectionName, String key, Object value);
    
    /**
     * 刷新日志到磁盘
     */
    boolean flush();
    
    /**
     * 回放日志
     */
    boolean replay();
    
    /**
     * 清理已提交的日志
     */
    boolean cleanup();
    
    /**
     * 获取日志统计信息
     */
    java.util.Map<String, Object> getStatistics();
    
    /**
     * 检查点
     */
    boolean checkpoint();
    
    /**
     * 获取未提交的日志
     */
    List<String> getUncommittedLogs();
    
    /**
     * 标记日志为已提交
     */
    boolean markCommitted(String logId);
} 